﻿using System.Collections.Generic;
using System.Drawing;
using Roborally.CommonData.Enums;
using Roborally.CommonData.GlobaleTypes;

namespace Roborally.Spelleider
{
    /// <summary>
    /// De klasse voor het object dat meegestuurd wordt in de lijst van spelerlocaties voor het event "VerplaatsAlleSpelers"
    /// (Was die zin nog duidelijk?)
    /// </summary>
    public class NieuweSpelerLocatie
    {
        #region Fields en (Auto)Properties
        public Richting KijkRichting { get; private set; }
        public Point NieuwePositie { get; private set; }
        public Point OudePositie { get; private set; }
        public List<ProgramKaart> GekozenKaarten { get; private set; }
        public int GespeeldeKaartIndex { get; private set; }
        public int SpelerID { get; private set; }
        public int Schade { get; private set; }
        public int Levens { get; private set; }
        public bool PowerDown { get; private set; }
        #endregion

        /// <summary>
        /// Constructor voor het object dat nodig is om een speler te verplaatsen.
        /// </summary>
        /// <param name="kijkRichting">De richting waarin de speler zal kijken na het verplaatsen</param>
        /// <param name="nieuwe">De nieuwe locatie van de speler op het bord</param>
        /// <param name="oud">De oude locatie van de speler op het bord</param>
        /// <param name="gekozenKaarten">De hand (List) met alle kaarten die de speler gekozen had</param>
        /// <param name="gespeeldeKaartIndex">De index in die hand (List) van de gekozen kaart, zodat deze op de GUI omgedraaid en getoond kan worden</param>
        /// <param name="spelerID">Het unieke ID van deze speler</param>
        /// <param name="schade">De schade die deze speler in totaal heeft (zodat de GUI het kan tekenen)</param>
        /// <param name="levens">De levens die deze speler nog heeft</param>
        /// <param name="powerDown">Is de speler powered down of niet?</param>
        public NieuweSpelerLocatie(Richting kijkRichting, Point nieuwe, Point oud, List<ProgramKaart> gekozenKaarten, int gespeeldeKaartIndex, int spelerID, int schade, int levens, bool powerDown)
        {
            this.KijkRichting = kijkRichting;
            this.NieuwePositie = nieuwe;
            this.OudePositie = oud;
            this.GekozenKaarten = gekozenKaarten;
            this.GespeeldeKaartIndex = gespeeldeKaartIndex;
            this.SpelerID = spelerID;
            this.Schade = schade;
            this.Levens = levens;
            this.PowerDown = powerDown;
        }
    }
}
